/*
 * MouseEvent.h
 *
 *  Created on: Apr 15, 2009
 *      Author: wrice
 */

#ifndef MOUSEEVENT_H_
#define MOUSEEVENT_H_

#include "DOMEvent.h"
namespace DOMEvent {

class MouseEvent: EXTENDS_INTERFACE( UIEvent ) {
	// http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-MouseEvent
public:
	virtual void initMouseEvent(
			DOMString typeArg,
			bool canBubbleArg,
			bool cancelableArg,
			AbstractView * viewArg, long detailArg,
			long screenXArg, long screenYArg,
			long clientXArg, long clientYArg,
			bool ctrlKeyArg, bool altKeyArg,
			bool shiftKeyArg, bool metaKeyArg,
			unsigned short buttonArg,
			EventTarget * relatedTargetArg) = 0;

	virtual long getScreenX() const = 0;
	virtual long getScreenY() const = 0;
	virtual long getClientX() const = 0;
	virtual long getClientY() const = 0;
	virtual bool getCtrlKey() const = 0;
	virtual bool getShiftKey() const = 0;
	virtual bool getAltKey() const = 0;
	virtual bool getMetaKey() const = 0;
	virtual unsigned short getButton() const = 0;
	virtual EventTarget * getRelatedTarget() const = 0;

	enum {
		LEFT_MOUSE_BUTTON = 0,
		MIDDLE_MOUSE_BUTTON = 1,
		RIGHT_MOUSE_BUTTON = 2
	};
};

}

#endif /* MOUSEEVENT_H_ */
